package com.szrt.day20170424;

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;

import org.junit.Test;

public class OutputStreamTest {
	
	
	/**
	 * 文件输入流：
	 * 
	 * 1： 当文件不存在的时候。系统会自动创建
	 * 2：当第2次输出的时候。第2次会覆盖第1次   问题：如何不覆盖?
	 * 3：当文件输入的时候 中文没有问题 默认会自动编码   跟整个项目的编码相同
	 * @throws Exception
	 */
	@Test
	public void os01() throws Exception {
		
		File file  = new File("io1704/sds.txt");
		
		OutputStream os = new FileOutputStream(file);
		
		//写1个
		
		String target ="zsr";
		
		
		
		for(int index=0; index<target.length();index++){
			
			char zm =target.charAt(index);
			
			int intzm = zm;
			os.write(intzm);
		}
		
		
		os.close();
		
	}
	
	
	
	@Test
	public void os02() throws Exception {
		
		//1 侦察兵
		File file  = new File("io1704/sds.txt");
		
		//2 大部分
		OutputStream os = new FileOutputStream(file);
		
		//3 目标字符串
		String target="中深软通szrt1234";
		
		
		byte[] bs = new byte[3];
		
		//字符串如何转化成字节数组?
		byte[] bytes = target.getBytes("UTF-8");
		
		//4 次性输入全部东东
		os.write(bytes,0,bytes.length);
		
		//5 关闭流
		os.close();
		
	}
	
	@Test
	public void os03() throws Exception {
		
		System.out.println(8/3);
		
		//1 侦察兵
		File file  = new File("io1704/sds.txt");
		
		//2 大部分
		OutputStream os = new FileOutputStream(file);
		
		//3 目标字符串  8  3
		String target="中深软通szrt1234";
		
		
		int changdu = target.length();
		
		byte[] bs = new byte[3];
		
		int len  = bs.length;
		
		//字符串如何转化成字节数组?
		byte[] bytes = target.getBytes();
		
		//4 次性输入全部东东  如何要输入的东西很长 长度>内存时
		for(int index =0; index<target.length();index=index+len){
			if(changdu >=len){
				os.write(bytes,index,len);
				changdu = changdu-len;
			}else{
				os.write(bytes,index,changdu);
			}
		}
		
		//5 关闭流
		os.close();
		
	}

}
